package com.itaming.lycheeframework.jackson.properties;

import com.itaming.lycheeframework.common.constant.FrameworkConstant;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * Jackson配置参数
 *
 * @author A.Ming
 */
@ConfigurationProperties(LycheeJacksonProperties.PREFIX)
@Data
public class LycheeJacksonProperties {

    /**
     * 前缀
     */
    public static final String PREFIX = FrameworkConstant.PROPERTIES_ROOT_NAME + ".jackson";

    /**
     * 大数值转为字符串，避免前端精度丢失
     */
    private boolean bigNumberToString = true;

    /**
     * null转为空值
     * <p>
     * 如：
     * <ul>
     *   <li>字符串：null -> ""</li>
     *   <li>数字：null -> -1</li>
     *   <li>布尔：null -> false</li>
     *   <li>数组：null -> []</li>
     *   <li>日期：null -> ""</li>
     *   <li>对象：null -> {}</li>
     * </ul>
     */
    private boolean nullToEmpty = false;

    /**
     * 使用蛇形(下划线)命名策略
     */
    private boolean snakeCaseProperty = false;

}
